
package com.ctsi.djcloudmqtt.dto.down.flighttask_prepare;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class FlighttaskPrepareDTO {

    /**
     * 计划 ID
     */
    @JsonProperty("flight_id")
    private String flightId;

    /**
     * 开始执行时间
     */
    @JsonProperty("execute_time")
    private Long executeTime;

    /**
     * 任务类型
     * {"0":"立即任务","1":"定时任务","2":"条件任务"}
     */
    @JsonProperty("task_type")
    private Integer taskType;

    /**
     * 航线文件对象
     */
    private FlighttaskPrepareFile file;

    /**
     * 任务就绪条件
     */
    @JsonProperty("ready_conditions")
    private FlighttaskReadyConditions readyConditions;

    /**
     * 任务执行条件
     */
    @JsonProperty("executable_conditions")
    private FlighttaskExecutableConditions executableConditions;

    /**
     *航线断点信息
     */
    @JsonProperty("break_point")
    private FlighttaskBreakPoint breakPoint;

    /**
     * 返航高度
     */
    @JsonProperty("rth_altitude")
    private Integer rthAltitude;

    /**
     * 	返航高度模式  {"0":"智能高度","1":"设定高度"}
     */
    @JsonProperty("rth_mode")
    private Integer rthMode;


    /**
     * 遥控器失控动作 {"0":"返航","1":"悬停","2":"降落"}
     */
    @JsonProperty("out_of_control_action")
    private Integer outOfControlAction;


    /**
     * 航线失控动作  {"0":"继续执行航线任务","1":"退出航线任务，执行遥控器失控动作"}
     */
    @JsonProperty("exit_wayline_when_rc_lost")
    private Integer exitWaylineWhenRcLost;

    /**
     * 航线精度类型  {"0":"GPS 任务","1":"高精度 RTK 任务"}
     */
    @JsonProperty("wayline_precision_type")
    private Integer waylinePrecisionType;

    /**
     * 是否在模拟器中执行任务
     */
    @JsonProperty("simulate_mission")
    private FlighttaskSimulateMission simulateMission;


}
